package com.zx._10_设计模式.创建型模式.单例模式;

/**
 * 单例模式--6. 双重校验(数据安全的)
 */
public class Singleton6 {

    // 这个地方不加volatile的话，即使有DCL,但是对象获得的不是最新的，一样可能导致线程不安全
    private volatile static Singleton6 singleton;

    private Singleton6() {
    }

    public static Singleton6 getInstance() {
        if (singleton == null) {
            synchronized (Singleton6.class) {
                if (singleton == null) {
                    singleton = new Singleton6();
                }
            }
        }
        return singleton;
    }
}